#Matheus Januario Lopes de Sousa - exercicio 107.2

#dados e funcao:

library(MASS)
data(Animals)
plot(brain~body, data=Animals)
anim.m2 <- lm(log(brain)~log(body),data=Animals, subset=!(log(Animals$body)>8&log(Animals$brain)<6))
anim.m0 <- lm(log(brain)~1, data=Animals, subset=!(log(Animals$body)>8&log(Animals$brain)<6))
anova(anim.m0,anim.m2)
anova(anim.m2)



#respostas:
#1. O objetivo do ANOVA e comparar dois modelos. O comando que cria o objeto "anim.m0" cria um modelo nulo, enquanto que o 
#comando que cria o objeto "anim.m2" cria um modelo nao-nulo de relacao entre as variaveis. Apos isso, a linha 
#"anova(anim.m0,anim.m2)" faz um teste ANOVa, comparando estes dois modelos. Quando usamos a linha "anova(anim.m2)" o resultado
#e o mesmo, pois a comparacao com um modelo nulo e feita de forma implicita quando damos apenas um modelo para o programa comparar, ou seja:
#caso nao seja dado a funcao "anova" um segundo modelo com o que comparar, a funcao constroi sozinha um modelo nulo, e o compara com a única 
#funcao dada.
#A única forma de os comandos darem resultados diferentes seria se dessemos um segundo modelo nao-nulo para ser comparado com o primeiro modelo nao-nulo.




#2. A linha de comando "mean(log(Animals$brain[!(log(Animals$body)>8&log(Animals$brain)<6)]))" retira animais cujo corpo e menor que 8 e cujo cerebro e menor que 6,
#alem de imprimir a meedia dos valores de cerebro que nao foram retirados. A linha de comando "sd(log(Animals$brain[!(log(Animals$body)>8&log(Animals$brain)<6)]))" 
#retira animais cujo corpo e menor que 8 e cujo cerebro e menor que 6, alem de imprimir o desvio padrao dos valores de cerebro que nao foram retirados.
#O comando "summary(anim.m0)" retorna os valores de media e desvio padrao dos residuos gerados pelo modelo nulo ("anim.m0"). Os comandos
#"mean(log(Animals$brain[!(log(Animals$body)>8&log(Animals$brain)<6)]))", e "sd(log(Animals$brain[!(log(Animals$body)>8&log(Animals$brain)<6)]))" geram o mesmo resultado
(media e desvio padrao, respectivamente).






